from typing import List


class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        # 单调栈,单调递减
        stack=[]
        n=len(temperatures)
        # 初始化 ans 全部为0，因为如果气温在这之后都不会升高，请在该位置用 0 来代替。
        ans=[0]*n
        for i in range(n):
            while stack and temperatures[stack[-1]] < temperatures[i]:
                # 当前栈顶元素 小于 要插入的元素
                # 更新ans答案
                ans[stack[-1]]=i-stack[-1]
                stack.pop()
            stack.append(i)
        return ans